# 文件名：button_clicker.py
import os
import time

import pyautogui
from pyautogui import ImageNotFoundException
import pyperclip
import pygetwindow as gw


# 自动化点击按钮
def click_button(image_path, confidence=0.8):
    """
    尝试在屏幕上查找并点击指定的按钮图像。

    :param image_path: 按钮图像的文件路径
    :param confidence: 匹配图像的置信度，默认为0.8
    :return: 成功点击返回 True，未找到图像返回 False
    """
    try:
        # 查找按钮图像
        button_location = pyautogui.locateOnScreen(image_path, confidence=confidence)

        if button_location:
            pyautogui.click(button_location)
            return True
        else:
            return False
    except ImageNotFoundException:
        print("未找到按钮 - 捕获到 ImageNotFoundException 异常")
        return False


# 自动化输入操作
def input_text(text):
    """
    在屏幕上输入指定的文本。

    :param text: 要输入的文本
    """
    pyperclip.copy(text)
    pyautogui.hotkey('ctrl', 'v')
    # 清除剪切板
    pyperclip.copy('')
    return True
# 鼠标滚动
def scroll_down(amount=-500):
    """
    模拟向下滚动页面，amount 为滚动量，负值向下，正值向上。
    """
    try:
        pyautogui.scroll(amount)  # 负值表示向下滚动
        print(f"滚动了 {amount} 像素")
    except Exception as e:
        print(f"滚动失败: {e}")
# 打招呼消息
def input_text2(text):
    """
    在屏幕上输入指定的文本。

    :param text: 要输入的文本
    """
    pyperclip.copy(text)
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
    pyautogui.press('enter')
    # 清除剪切板
    pyperclip.copy('')


# 清除输入框内容
def clear_input_box():
    """
    清除屏幕上的输入框内容。
    """
    pyautogui.hotkey('ctrl', 'a')
    pyautogui.press('backspace')

# 自动化输入操作
def input_text1(text):
    """
    在屏幕上输入指定的文本。

    :param text: 要输入的文本
    """
    pyperclip.copy(text)
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
    pyautogui.press('enter')
    # 清除剪切板
    pyperclip.copy('')
    return True
# 打开窗口
def open_window(name):
    try:
        wechat_window = gw.getWindowsWithTitle(name)[0]
        # 设为前台程序
        wechat_window.activate()

        # 窗口最大化
        wechat_window.maximize()

        return True
    except IndexError:
        print("未找到窗口")
        return False


# 拼接地址
def get_address(static_path,address):
    return os.path.join(static_path,address+'.png')

# 坐标点击
def click_point(x,y):
    pyautogui.doubleClick(x,y)
    time.sleep(1)
    pyautogui.doubleClick(x,y)

    return True


